package cn.com.yusys.yusp.custManager.repository.mapper;

import cn.com.yusys.yusp.commons.mapper.CommonMapper;
import cn.com.yusys.yusp.commons.mapper.QueryModel;
import cn.com.yusys.yusp.custManager.domain.MarketCustGroup;
import cn.com.yusys.yusp.custManager.domain.OcrmFCiFqDbcol;
import cn.com.yusys.yusp.custManager.domain.WcrmMarketCustGroupRel;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.ResultSetType;
import org.apache.ibatis.session.ResultHandler;

import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

/**
 * @author zoie
 */
@Mapper
public interface MarketCustGroupMapper extends CommonMapper<MarketCustGroup>{

    /**
     * 查询营销客户群组
     * @param queryModel
     * @return
     */
//    List<Map<String, Object>> getGridGroup(QueryModel queryModel);

    /**
     * 查询总行网格群组
     * @param queryModel
     * @return 总行网格客群
     */
    List<Map<String, Object>> getLevelGridGroup(QueryModel queryModel);
    /**
     * 查询一级网格群组
     * @param queryModel
     * @return 一级网格客群
     */
    List<Map<String, Object>> getLevel1GridGroup(QueryModel queryModel);

    /**
     * 查询二级网格群组
     * @param queryModel
     * @return 二级网格客群
     */
    List<Map<String, Object>> getLevel2GridGroup(QueryModel queryModel);

    /**
     * 批量删除客户群组
     * @param idList
     */
    void deleteGroups(String[] idList);

    /**
     * 根据机构号查询网格（一级网格）
     * @param orgId
     * @return
     */
    String getGridIdByOrgId(String orgId);

    /**
     * 根据userId查询网格号（二级网格）
     * @param userId
     * @return
     */
    List<String> getGridIdByUserId(String userId);

    /**
     * 批量添加客户群
     * @param list
     * @return
     */
    int insertGroups(List<MarketCustGroup> list);

    /**
     * 创建客群
     * @param marketCustGroup
     * @return
     */
    int insertGroup(MarketCustGroup marketCustGroup);

    int insertCusGroupRel(WcrmMarketCustGroupRel cusGroupRel);

    List<Map<String, Object>> selectAllCus(String SQL);

    int selectGroupNoCount(String custGroupNo);

    List<Map<String, Object>> getCustInfo(QueryModel queryModel);
}